Ext.define('cp.view.grid.GestionPaciente', {
    extend: 'cp.view.grid.GestionBase',
    alias: 'widget.gestionPaciente',
    
    /* Variables de instancia */
    stage: 'Paciente',
    idProperty: 'idUsuario',
    deleteUrl: 'bin/paciente/borrar.php',
    undeleteUrl: 'bin/paciente/recuperar.php',
    
    initComponent: function(){
        this.callParent(arguments);
        
        this.reconfigure(null,[
            {header: '#', dataIndex: 'idUsuario', hidden: true},
            {header: 'Apellido', dataIndex: 'apellido', flex: 1},
            {header: 'Nombre', dataIndex: 'nombre', flex: 1},
            {header: 'Dni', dataIndex: 'dni', flex: 1},
            {header: 'Fecha nacimiento', dataIndex: 'fechaNacimiento', flex: 1},
            {header: 'Activo', dataIndex: 'activo', flex: 1}
    	]);

        this.getComponent('top-toolbar').add([
            {xtype: 'button', text: 'Editar', iconCls: 'ico-edit', action: 'edit'}
        ]);
    },
    verFormularioAlta: function(){
        var form = Ext.create('cp.view.form.AltaPaciente',{
            actionUrl: 'bin/paciente/agregar.php'
        });
        var win = Ext.create('cp.view.ui.DecoratorForm',{
            aTitle: 'Nuevo paciente',
            aForm: form
        });
        win.show();
    },
    cargarStore: function(idPaciente){
        var store = Ext.create('cp.store.form.Paciente',{});
        Ext.apply(Ext.data.Connection.prototype, {
                async: false
        });
        store.load({params:{idUsuario: idPaciente}});
        Ext.apply(Ext.data.Connection.prototype, {
                async: true
        });
        return store;
    },
    verFormularioEdicion: function(){
        if(this.hayFilaSeleccionada()){
            if(this.filaSeleccionada().get('activo') !== 'No'){
                this.cargarFormularioEdicion(this.filaSeleccionada().get('idUsuario'));
            }else{
                this.mostrarErrItemInactivo();
            }
        }else{
            this.mostrarErrNoSeleccion();
        }
    },
    cargarFormularioEdicion: function(idPaciente){
        var ds = this.cargarStore(idPaciente);
        var form = Ext.create('cp.view.form.EditPaciente',{
            actionUrl: 'bin/paciente/modificar.php'
        });
        // Ver la forma de pasar este listener al controller
        form.on('afterrender',function(form){
           form.getForm().loadRecord(ds.first());
        });
        var win = Ext.create('cp.view.ui.DecoratorForm',{
            aTitle: 'Editar paciente',
            aForm: form
        });
        win.show();
    },
    verFormularioVista: function(){
        if(this.hayFilaSeleccionada()){
            this.cargarFormularioVista(this.filaSeleccionada().get('idUsuario'));
        }else{
            this.mostrarErrNoSeleccion();
        }
    },
    cargarFormularioVista: function(idPaciente){
        var ds = this.cargarStore(idPaciente);
        var form = Ext.create('cp.view.form.VerPaciente',{});
        // Ver la forma de pasar este listener al controller
        form.on('afterrender',function(form){
           form.getForm().loadRecord(ds.first());
        });
        var win = Ext.create('cp.view.ui.DecoratorFormSimple',{
            aTitle: 'Ver paciente',
            aForm: form
        });
        win.show();
    },
    verFormularioBusqueda: function(){
        var form = Ext.create('cp.view.form.BuscarPaciente',{
            actionUrl: 'aUrl'
        });
        
        var win = Ext.create('cp.view.ui.DecoratorFormSearch',{
            aTitle: 'Buscar pacientes',
            aForm: form
        });
        
        win.add(form);
        win.show();
    }
});